<!DOCTYPE html>
<html lang="en">

<head>
    <meta charset="UTF-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge">
    <meta name="viewport" content="width=device-width, initial-scale=1.0">
    <title>Document</title>

    <script>
        // 1. 使用对象字面量创建对象
        // var obj = {};   // 创建一个空对象
        var obj = {
                // 属性
                uname: '张三',
                age: 18,
                sex: '男',
                // 方法
                sayHi: function() {
                    console.log('hi~');
                }
            }
            // 使用
        console.log(obj.uname);
        console.log(obj['age']);
        // 方法调用
        obj.sayHi();

        // 2. 使用 new object 创建对象
        var obj1 = new Object(); // 创建了一个空的对象
        // 追加属性
        obj1.uname = '张三';
        obj1.age = 19;
        obj1.sex = '男';
        // 追加方法
        obj1.sayHi = function() {
            console.log('hi~~');
        }
        obj1.sayHi()
        console.log(obj1.age);

        // 3. 利用构造函数创建对象
        // function 构造函数名() {
        //     this.属性 = 值;
        //     this.方法 = function() {}
        // }
        // // 使用
        // new 构造函数名();
        function Doginit(uname, age, sex) {
            // 属性
            this.name = uname;
            this.age = age;
            this.sex = sex;
            // 方法
            this.sayHi = function() {
                console.log('旺旺');
            }
        }

        var w = new Doginit('haha', 8, '男');
        w.sayHi();
        console.log(w.name);

        console.log('------------------------------');

        // 遍历对象 for in  for(变量 in 对象) {}
        for (var k in w) {
            console.log(k); // k 变量 输出 得到的是 属性名
            console.log(w[k]); // w[k] 得到的是属性值
        }
    </script>

</head>

<body>

</body>

</html>